/*
 * Copyright 2006 Brian Cavalier
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *     http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package org.bc.iterate.examples;

import static org.bc.iterate.Iterate.*;
import org.bc.iterate.Transform;

import java.util.regex.Pattern;

public class URLMatch {
	
	public final static String regex = 
		"^(https?):\\/\\/(\\w+:?\\w*@)?(\\w+\\.)+\\w{2,}(:[0-9]{1,5})?(\\/([\\w#!:.?+=&%@!\\-\\/]*))?$";
	public final static Pattern url = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);
		
	public static void main(String[] args) {
		try {
			each(stream(System.in), grep(url), chain(
				new Transform<String>() { 
					public String apply(String s) { return "valid: " + s; }
				},
				print()));
		}
		catch (Exception e) { 
			System.err.println(e);
		}
	}
}